Programming Inductive Proofs - A New Approach Based on Contextual Types
نویسنده
چکیده
In this paper, we present an overview to programming with proofs in the reasoning framework, Beluga. Beluga supports the specification of formal systems given by axioms and inference rules within the logical framework LF. It also supports implementing proofs about formal systems as dependently typed recursive functions. What distinguishes Beluga from other frameworks is that it not only represents binders using higher-order abstract syntax, but directly supports reasoning with contexts and contextual objects. Contextual types allows us to characterize precisely hypothetical and parametric derivations, i.e. derivations which depend on variables and assumptions, and lead to a direct and elegant implementation of inductive proofs as recursive functions. Because of the intrinsic support for binders and contexts, one can think of the design of Beluga as the most advanced technology for specifying and prototyping formal systems together with their meta-theory.
منابع مشابه
Bisimilarity as a Theory of Functional Programming
Morris style contextual equivalence invariance of termination under any context of ground type is the usual notion of operational equivalence for deterministic functional languages such as FPC PCF plus sums products and recursive types Contextual equivalence is hard to establish directly Instead we de ne a labelled transition system for call by name FPC and variants and prove that CCS style bis...
متن کاملProgramming proofs: a novel approach based on contextual types
We present an overview of Beluga, a dependently-typed programming and proof development environment. Beluga uses a two-level approach: it supports specifying formal systems within the logical framework LF and on top of LF, it provides a dependently-typed functional language that supports manipulating and analyzing LF objects via pattern matching. A distinct feature of Beluga is the explicit sup...
متن کاملA Case-Study in Programming Coinductive Proofs: Howe’s Method
Bisimulation proofs play a central role in programming languages in establishing rich properties such as contextual equivalence. They are also challenging to mechanize, since they require a combination of inductive and coinductive reasoning on open terms. In this paper we describe mechanizing the property that similarity in the call-by-name lambda calculus is a pre-congruence using Howe’s metho...
متن کاملA new approach to fuzzy quantities ordering based on distance method and its applications for solving fuzzy linear programming
Many ranking methods have been proposed so far. However, there is yet no method that can always give a satisfactory solution to every situation; some are counterintuitive, not discriminating; some use only the local information of fuzzy values; some produce different ranking for the same situation. For overcoming the above problems, we propose a new method for ranking fuzzy quantities based on ...
متن کاملMechanizing Proofs with Logical Relations – Kripke-style
Proofs with logical relations play a key role to establish rich properties such as normalization or contextual equivalence. They are also challenging to mechanize. In this paper, we describe two case studies using the proof environment Beluga: first, we explain the mechanization of the weak normalization proof for the simply-typed lambda-calculus; second, we outline how to mechanize the complet...
متن کامل